Cores and modules of cores, like CPU (Central Processing Unit) or GPU (Graphics Processing Unit) have varying internal activities. The variations of the internal activity may be the result of stops due to cache refills, re-activation after the trigger of interrupt or a start of a task, or varying intensities of tasks.
The varying activities creates varying current consumption in the cores, and thus varying local core voltage that may rises or drops before the power supply of the core can compensate the current variation.
These rise and drop of voltage must remain under control, as a too high voltage or too low voltage might crash the Core. For instance, this may lead to critical path violation, either in Hold or in Setup.
In addition, the cores and modules of cores may be subjected to an over-activity when the intensities of tasks to be processed by the CPU or GPU are too important. This over-activity creates an increase of the temperature of the core or the module of the core that may also lead to its crash, and even its physical destruction.
In order to prevent a crash due to a too low voltage or a too high temperature, several systems exist that try to slow the rise of the power consumption of the core or limit the increase of the core temperature, by tuning its frequency or else. These systems use techniques that use progressive activation of the cores or the module of a core, like providing a rising clock frequency.
These systems require an external trigger to be started for tuning the frequency and slow the rise of the activity. The external trigger can be of different kind, like a manual trigger, for instance a software activation, or automatic.
The issue with such techniques is that during the rising period, the core is slowed down, and as a result, its performances suffer: the more conservative the slowed-down period, the more performance is lost. In addition, automatic triggering techniques may trigger the slowing-down mechanism unexpectedly, and create a temporary slow-down until the system converges again.
There is a need for a solution permitting to regulate the activity of a module of a core while limiting slow-down of the core.